Video Sync 6 - Knowledge Base

Sync Setup - REAPER on a separate computer

About DAW Sync

To play video in sync with REAPER, Video Sync needs a way to follow the REAPER transport - knowing when it plays, stops, and where the playhead is located at any moment. This connection between Video Sync and REAPER is called DAW sync.

About This Configuration

This chapter covers setting up REAPER on a separate computer from Video Sync using network MIDI sessions for MTC (MIDI Timecode) and MMC (MIDI Machine Control) synchronization via Audio MIDI Setup.

Note: The following explanation and screenshots are related to REAPER version 6.73, but the steps will be similar for other versions.

Understanding MTC and MMC

This chapter covers setting up two MIDI-based protocols that work together to provide synchronised playback:

MTC (MIDI Timecode) transmits a continuous stream of timecode on a dedicated MIDI port during playback, allowing Video Sync to track the current position and play at the correct speed.

MMC (MIDI Machine Control) sends transport commands and locate messages on a separate dedicated MIDI port. When navigating to a specific timecode position in REAPER (such as clicking in the timeline or using markers), MMC sends locate commands to update Video Sync's position without requiring playback.

Setup

The easiest way to provide Video Sync with incoming MTC/MMC data from another computer, is to setup a network MIDI connection using Apple's built-in Audio MIDI Setup tool to transmit all the MIDI data between the two computers. It is usually not necessary to buy a separate MIDI interface and cables to connect the MTC sending and receiving computers, although a cabled MIDI connection can be used if preferable. Since MIDI was developed in the 80s, it has a really low data rate. Therefore it should not be a problem to use network MIDI in a Wi-Fi environment.

Note: A cabled ethernet network connection is the preferred method for reliability.

The following instructions assume that you have two Apple Macs: one with Video Sync; the other with REAPER.

Note: Although not listed as a separate DAW Sync Setup Option, this Network MIDI setup incidentally also works flawlessly with Video Sync on the same computer.

If the REAPER computer is a PC, rtpMIDI is a free PC equivalent to Apple's network MIDI implementation. Download & setup instructions can be found here: http://www.tobias-erichsen.de/software/rtpmidi.html

Our thanks to Tobias Erichsen for this invaluable tool.

rtpMIDI Settings Window{width=80%}

Configuring Audio MIDI Setup on the REAPER computer to send MTC & MMC over the Network

On the REAPER computer, go to ApplicationsUtilities & open Audio MIDI Setup. The MIDI Network Setup window should appear:

MIDI Network Setup Overview{width=80%}

If the window is not shown, select WindowShow MIDI Studio & then from the MIDI Studio menu that appears, select Open MIDI Network Setup.

In older versions of Audio MIDI Setup where this option is not present, it can be accessed by double-clicking the Network device icon in the default MIDI Studio window.

Audio MIDI Setup - MIDI Studio Window{width=80%}

In the My Sessions field top left, create a new session by clicking +.

Click the checkbox to the left of the name to enable the session.

Rename it (computer 1 name) MTC/MMC Send (or something similar) - e.g. MacProHDX MTC/MMC Send. This name will automatically be copied to the Local name field.

Note: The Local name is the name that appears on this local computer.

Copy this name & paste it in the Bonjour name field.

Note: The Bonjour name is the name that is displayed on the other computers in the network.

Although a session can be used in either input or output directions, to avoid confusion it is recommended to stick to one direction by noting this in the session name, e.g. Send or Out.

MTC & MMC do not require separate Network sessions made for each - they can share the same session.

Set the Port: field to 5004.

Select Anyone in the Who may connect to me dropbox on the bottom left.

MIDI Network Setup - Send Session created{width=80%}

Configuration is complete for the REAPER computer. This should not need to be set up again in future.

Configuring Audio MIDI Setup on the Video Sync computer to receive Network MTC & MMC

On the Video Sync computer, close Video Sync & open Audio MIDI Setup. Open the MIDI Network Setup window as described above. The REAPER computer should be visible in the Directory field - showing (computer 1 name) MTC/MMC Send with a green active circle to the left.

Created session as seen from another system on the network{width=80%}

In the My Sessions field top left, create a new session by clicking +.

Click the checkbox to the left of the name to enable the session.

Rename it (computer 2 name) MTC/MMC Receive (or something very similar) - e.g. MacbookPro MTC/MMC Receive.

This name will automatically be copied to the Local name field.

Copy this name & paste it in the Bonjour name field.

Set the Port: field to 5006.

Select Anyone in the Who may connect to me: selection field on the bottom left.

Send and receive sessions ready to connect{width=80%}

Connecting the Network MTC/MMC Sessions

Now that the two Sessions have been created, the next step is to connect them.

Note: The steps until this point should not need to be done again in future. The following simple steps to connect only need to be done once every time the computers are restarted.

With the (computer 2 name) MTC/MMC Receive session selected in the My Sessions box, select (computer 1 name) MTC/MMC Send in the Directory field, and hit the Connect button.

(computer 1 name) MTC/MMC Send should now appear in the Participants: field on the right.

Send and receive sessions connected{width=80%}

Note: Regardless of which computer is chosen to Connect, only one of the computers needs to connect to establish the connection.

On the REAPER computer, (computer 2 name) MTC/MMC Receive should now also be seen in the Participants: window.

Connected sessions as seen from the other machine{width=80%}

If the (computer 2 name) MTC/MMC Receive session does not show up in the Directory list, try re-launch Audio-MIDI-Setup.

Video Sync MTC / MMC Setup

Launch Video Sync.

Note: If Video Sync was open already, use the Rescan Available MIDI Ports button in the SYNC preferences.

To show the MIDI I/O options in Video Sync, first navigate to the SYNC tab of the Preferences / Settings window.

Set the Sync Source field to Other.

Next, select Network (computer 2 name) MTC/MMC Receive in both the MTC In & MMC In fields, as per the image below:

Video Sync's SYNC Preferences{width=70%}

REAPER Network MTC (MIDI Timecode) Setup

To enable MIDI Timecode to be sent to Video Sync, open the REAPER Preferences window by clicking on the REAPER menu & selecting Preferences....

From the Audio sub-category list on the left, click on MIDI Devices.

Locate & double-click the Audio MIDI Setup Session (computer 1 name) MTC/MMC Send entry in the MIDI outputs to make available list.

Locating Video Sync MTC In Settings{width=70%}

In the Configure MIDI Output window that appears, activate both Enable output to this device & Send clock to this device by clicking the tick boxes to the left of these options so that they turn blue.

Configure MIDI Output window{width=70%}

Click on the OK button to close the Configure MIDI Output window.

The Audio MIDI Setup Session (computer 1 name) MTC/MMC Send entry in the MIDI outputs to make available list should now be showing as Enabled & Clock in the Mode column.

Click on the Apply button then the OK button to close the REAPER Preferences window.

Create a new track by clicking in the dark grey area to the left under the last track in the Session.

If desired, rename the track something like MTC / MMC.

Rewind the Timeline to the start of the Project.

From the Insert menu, select SMPTE LTC/MTC Timecode Generator.

Inserting SMPTE LTC/MTC Timecode Generator{width=70%}

Double-click the white region that appears on the track at that location to bring up the Media Item Properties: Timecode Generator window.

Enable the box called HMSF in the top left of the window.

In the Position field, confirm that this is set to the start of the Timeline in REAPER.

In the Length field, select a duration for the timecode that runs as long as required for your video.

Media Item Properties: Timecode Generator window{width=55%}

Click on the Properties button at the bottom of the window to show the SMPTE Generator Properties window.

Enable the Send MIDI (MTC) option.

Ensure that the Start Time field is set to the same value as the start of the REAPER Timeline.

SMPTE Generator Properties window{width=70%}

Click on the Apply button then the OK button to close the SMPTE Generator Properties window.

In the mixer at the bottom, click the Route button on the right of the corresponding fader with the track name chosen earlier to show the Routing for track (trackname) window.

Mixer Route button{width=70%}

Select (computer 1 name) MTC/MMC Send from the topmost MIDI Hardware Output field.

Routing for track window{width=70%}

REAPER Network MMC (MIDI Machine Control) Setup

Currently, REAPER does not natively support MMC output. In order to overcome this limitation, download a copy of mrlimbic's free JS script plug-in: MMC Locate, by clicking this link - navigating to the Raw link to the top right of the page, holding down the Control button & selecting Download Linked File from the menu item.

Raw download button{width=70%}

Note: Please ensure that the plug-in is downloaded exactly as outlined above. Failure to do so may download it in the wrong format (.txt or .HTML), which will corrupt the plug-in & cause the plug-in or UI not to load inside of REAPER.

Locate the downloaded file, called MMC locate.jsfx.txt in your Downloads folder & move it into the following folder:

(macOS drive)/Users/(your user name)/Library/Application Support/REAPER/Effects/utility

In REAPER, on the MTC track created earlier, click on the FX button to the right of the Track Name.

In the Add FX To Track window that appears, click the arrow to the left of the All Plugins window, to show the contents of that folder. Click on the JS folder. Click on the FX Menu item & select Scan for new plugins. Back in the Add FX To Track window, type MMC into the Filter: field. This will show the plug-in on the right hand side of the window. To add it the track, double-click it, or select it & click the Add button at the bottom of the window.

Adding MMC Locate plug-in{width=70%}

In the Frame Rate field of the MMC Locate plug-in window that appears, set the correct frame rate according to the Timeline frame rate in Video Sync.

Set the Mode field to MTC Fullframe.

MMC Locate settings{width=70%}

Close the plug-in window using the top right red window button.

On the corresponding track, click on the circular record arm button to the left of the track name.

Directly underneath the record button, set the Record mode field to Record: disable (input monitoring only).

Record Enabling the track{width=70%}

Please note that one limitation of using this plug-in, is that due to a JS API limitation, REAPER's Pause button is not recognised and hence the timecode counters will still increment as if still in playback. To overcome this, please consult the Cockos REAPER Forums and documentation to find out how to map the pause key to a custom action that seeks the Edit cursor, then stops.

Our thanks to mrlimbic for this invaluable tool.

Matching Frame Rates

For MTC sync to work correctly, the REAPER project frame rate must match the timeline frame rate in Video Sync.

In the TIMELINES tab, locate the active timeline and check its frame rate in the summary section. If video is present on the timeline, the frame rate is derived from the video file. If no video is present, the frame rate can be set manually by clicking the pencil icon next to the timeline name and selecting the required frame rate from the TC Frame Rate menu.

Timeline frame rate display{width=50%}

Ensure your REAPER project is set to the same frame rate as the Video Sync timeline.

Enabling Synchronised playback

When hitting play or scrubbing within REAPER, both the incoming timecode field should now be seen incrementing & the timecode rate displayed within the Incoming TC section to the left of the main timecode counter in Video Sync.

Video Sync's SYNC Preference showing incoming timecode{width=70%}

If the Sync button to the left of the transport buttons isn't already blue, click on it to activate it to follow external sync.

Video Sync sync online button{width=40%}

Video Sync MTC/MMC sync is now online & ready to go. Hit play in REAPER and Video Sync will play back in sync.

High Frame Rate Content

Video Sync supports timelines running at up to 60 frames per second. However, MTC was designed around SMPTE broadcast standards and only supports frame rates up to 30fps (24, 25, 29.97, and 30). The specification has never been updated to include higher frame rates.

To sync high frame rate timelines via MTC, set the REAPER project frame rate to half the timeline frame rate. For example:

  • 48fps timeline → set REAPER to 24fps
  • 50fps timeline → set REAPER to 25fps
  • 60fps timeline → set REAPER to 30fps

Video Sync will automatically match the incoming timecode at half its frame rate.

Troubleshooting

If incoming timecode is not showing in Video Sync:

  • Check that MTC generation is enabled in REAPER
  • Check that the correct MTC port is selected in REAPER's synchronization/MIDI settings
  • Ensure Video Sync was launched before REAPER so the virtual ports are available (if using virtual ports)

If incoming timecode is showing but playback is not syncing:

  • Ensure the Sync button is enabled (blue) in Video Sync
  • Check that frame rates match (see Matching Frame Rates above)
  • Check that timecode ranges match - if the REAPER session starts at 01:00:00:00 but the Video Sync timeline starts at 10:00:00:00, playback will not begin until REAPER reaches 10:00:00:00

If Video Sync's position only updates during playback but not when navigating in REAPER:

  • This indicates an issue with MMC (MIDI Machine Control) setup
  • Check that the correct MMC port is selected in Video Sync
  • Check that MMC is enabled and configured correctly in REAPER

If playback is jumpy or frames are being skipped:

  • This is often caused by mismatched frame rates between REAPER and Video Sync - ensure both are set to the same frame rate (see Matching Frame Rates above)
  • Try increasing the TC Freewheel value in PreferencesMISC. This defines a number of freewheel frames to keep playback running through unexpected timecode values. Note that higher values will make Video Sync less responsive to external timecode changes.

If synchronised playback still does not work after following these steps, please contact support@non-lethal-applications.com.